Adding feature tracking operator#2148
Conversation
James Frost (jfrost-mo)
left a comment
There was a problem hiding this comment.
Thank you for this pull request, and sorry it took so long for me to get to it. I'm assuming that despite it being a draft PR it is ready for a review.
Overall it looks like a good set of changes that will nicely integrate simple-track into CSET. There are a few small issues highlighted in the comments below, but it is overall looking very good.
Please run the pre-commit checks over this code (pre-commit run --all-files) to fix a number of minor issues. These checks can be set to run on each commit by running pre-commit install.
Adam Gainford (A-Gainford)
left a comment
There was a problem hiding this comment.
Thanks for the taking a look through the code, happy with the suggestions. I assume it's okay to accept changes on the lockfiles at the bottom of the PR page but I have held off for now
James Frost (Fraetor)
left a comment
There was a problem hiding this comment.
Still need to review the feature file.
James Frost (jfrost-mo)
left a comment
There was a problem hiding this comment.
Looking good. There are a couple very minor cleanup suggestions, but once the checks are passing this should be good to merge.
|
Branch will need rebasing to fix conflicts. Easiest thing to do is probably just to take the main branch versions of the lock files then re-resolve them all. |
Co-authored-by: Copilot <copilot@github.com>
Remove whitespace Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
Update copyright Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
Co-authored-by: James Frost <james.frost@metoffice.gov.uk>
0f3051e to
bf3b1f0
Compare
Total coverage: 91% (HTML report)Name Stmts Miss Branch BrPart Cover --------------------------------------------------------------------------------------------------- src/CSET/__init__.py 93 2 12 0 98% src/CSET/_common.py 149 0 52 0 100% src/CSET/cset_workflow/app/fetch_fcst/bin/fetch_data.py 115 27 24 0 79% src/CSET/cset_workflow/app/finish_website/bin/finish_website.py 70 0 4 0 100% src/CSET/cset_workflow/app/parbake_recipes/bin/parbake.py 29 0 8 0 100% src/CSET/cset_workflow/app/send_email/bin/send_email.py 25 0 4 0 100% src/CSET/cset_workflow/lib/python/jinja_utils.py 17 0 6 0 100% src/CSET/extract_workflow.py 47 0 16 0 100% src/CSET/graph.py 43 0 14 0 100% src/CSET/operators/__init__.py 89 0 26 0 100% src/CSET/operators/_atmospheric_constants.py 9 0 0 0 100% src/CSET/operators/_colormaps.py 229 4 62 4 97% src/CSET/operators/_stash_to_lfric.py 3 0 0 0 100% src/CSET/operators/_utils.py 183 8 74 6 95% src/CSET/operators/ageofair.py 141 7 64 5 94% src/CSET/operators/aggregate.py 76 1 22 1 98% src/CSET/operators/aviation.py 60 0 18 0 100% src/CSET/operators/collapse.py 154 12 72 5 91% src/CSET/operators/constraints.py 107 7 46 2 93% src/CSET/operators/convection.py 37 4 10 2 87% src/CSET/operators/ensembles.py 27 0 14 0 100% src/CSET/operators/feature.py 41 0 10 0 100% src/CSET/operators/filters.py 66 2 30 0 98% src/CSET/operators/humidity.py 139 0 56 0 100% src/CSET/operators/imageprocessing.py 56 0 16 0 100% src/CSET/operators/mesoscale.py 17 0 2 0 100% src/CSET/operators/misc.py 146 0 54 1 99% src/CSET/operators/plot.py 929 169 318 59 78% src/CSET/operators/power_spectrum.py 97 3 30 3 95% src/CSET/operators/precipitation.py 93 0 50 0 100% src/CSET/operators/pressure.py 41 0 12 0 100% src/CSET/operators/read.py 409 38 178 14 89% src/CSET/operators/regrid.py 122 18 64 1 83% src/CSET/operators/scoreswrappers.py 47 6 12 3 85% src/CSET/operators/temperature.py 121 0 32 0 100% src/CSET/operators/transect.py 62 0 24 0 100% src/CSET/operators/wind.py 45 3 10 2 91% src/CSET/operators/write.py 15 0 6 0 100% src/CSET/recipes/__init__.py 101 0 28 0 100% --------------------------------------------------------------------------------------------------- TOTAL 4250 311 1480 108 91% |
|
Just needs a little more tests:
|
Thanks for the suggestions! Forgot about the custom colourmap |
Adding feature-tracking via the Simple-Track repo (https://github.com/ParaChute-UK/simple-track), which is included as a new dependency. The feature.track operator is used to call Simple-Track, which returns three cubes per timestep: "feature_id", "feature_lifetime" and "feature_init". These can be filtered to select them for plotting with existing routines. Other data which is not currently used by CSET can be saved for further analysis. The new "feature" operator set will also be used to implement cell stats using Simple-Track with the tracking capabilities disabled (though the "feature" name may want to be changed).
Contribution checklist
Aim to have all relevant checks ticked off before merging. See the developer's guide for more detail.
rose-suite.conf.examplehas been updated if new diagnostic added.